package com.teamwhole.modules.sys.service;

import java.util.List;

import org.springframework.stereotype.Service;
import com.teamwhole.core.persistence.service.CrudService;
import com.teamwhole.modules.sys.dao.BaseCodeDao;
import com.teamwhole.modules.sys.entity.BaseCode;
import com.teamwhole.modules.sys.utils.BaseCodeUtils;

@Service
public class BaseCodeService extends CrudService<BaseCodeDao, BaseCode>{
	
	public List<BaseCode> getBaseCodeList(String classId){
		return BaseCodeUtils.getBaseCodeList(classId);
	}
	
	
	public List<BaseCode> getAllBaseCodeList(String classId){
		return BaseCodeUtils.getAllBaseCodeList(classId);
	}
	
	
	/**
	 * 获取子节点
	 * @param entity
	 * @return
	 */
	public List<BaseCode> findNextLevel(BaseCode entity) {
		List<BaseCode> list = dao.findNextLevel(entity);
		for (BaseCode item : list) {
			item.setState(hasNextLevel(item) ? "closed" : "open");
		}
		return list;
	}
	
	/**
	 * 是否含有子节点
	 * @param item
	 * @return
	 */
	public Boolean hasNextLevel(BaseCode item) {
		return dao.getNextLevelCount(item) > 0;
	}

}
